home *** CD-ROM | disk | FTP | other *** search
/ Aminet 35 / Aminet 35 (2000)(Schatztruhe)[!][Feb 2000].iso / Aminet / dev / cross / devpic.lha / picasm-src / devices.c < prev    next >
C/C++ Source or Header  |  1999-11-27  |  9KB  |  127 lines

  1. /*
  2.  * devices.c -- picasm
  3.  *
  4.  * Timo Rossi <trossi@iki.fi>
  5.  * RDC <rdc@cch.pmc.ru>
  6.  *
  7.  */
  8.  
  9. #include <stdio.h>
  10. #include "picasm.h"
  11.  
  12. /*
  13.  * PIC device type table
  14.  */
  15.  
  16. struct pic_type pic_types[] = {
  17. /* name        prog     reg   eeprom  id_addr fuseaddr  fusetype      instrset */
  18.  
  19. /* 12-bit 8-pin PICs */
  20. { "12C508",     512,   0x19,    0,     0x200,   0xfff,  FUSE_12C5XX,  PIC12BIT },
  21. { "12C508A",    512,   0x19,    0,     0x200,   0xfff,  FUSE_12C5XX,  PIC12BIT },
  22. { "12C509",    1024,   0x29,    0,     0x400,   0xfff,  FUSE_12C5XX,  PIC12BIT },
  23. { "12C509A",   1024,   0x29,    0,     0x400,   0xfff,  FUSE_12C5XX,  PIC12BIT },
  24. { "12CR509A",  1024,   0x29,    0,     0x400,   0xfff,  FUSE_12C5XX,  PIC12BIT },
  25. { "12CE518",    512,   0x19,   16,     0x200,   0xfff,  FUSE_12C5XX,  PIC12BIT },
  26. { "12CE519",   1024,   0x29,   16,     0x400,   0xfff,  FUSE_12C5XX,  PIC12BIT },
  27.  
  28. /* 14-bit 8-pin PICs */
  29. { "12C671",    1024,   0x80,    0,    0x2000,  0x2007,  FUSE_12C6XX,  PIC14BIT },
  30. { "12C672",    2048,   0x80,    0,    0x2000,  0x2007,  FUSE_12C6XX,  PIC14BIT },
  31. { "12CE673",   1024,   0x80,   16,    0x2000,  0x2007,  FUSE_12C6XX,  PIC14BIT },
  32. { "12CE674",   2048,   0x80,   16,    0x2000,  0x2007,  FUSE_12C6XX,  PIC14BIT },
  33.  
  34. /* 12-bit PICs */
  35. { "16C52",      384,   0x19,    0,     0x180,   0xfff,  FUSE_16C5X,   PIC12BIT },
  36. { "16C54",      512,   0x19,    0,     0x200,   0xfff,  FUSE_16C5X,   PIC12BIT },
  37. { "16CR54A",    512,   0x19,    0,     0x200,   0xfff,  FUSE_16C5X,   PIC12BIT },
  38. { "16C54A",     512,   0x19,    0,     0x200,   0xfff,  FUSE_16C5X,   PIC12BIT },
  39. { "16C54C",     512,   0x19,    0,     0x200,   0xfff,  FUSE_16C5X,   PIC12BIT },
  40. { "16CR54C",    512,   0x19,    0,     0x200,   0xfff,  FUSE_16C5X,   PIC12BIT },
  41. { "16C55",      512,   0x18,    0,     0x200,   0xfff,  FUSE_16C5X,   PIC12BIT },
  42. { "16C55A",     512,   0x18,    0,     0x200,   0xfff,  FUSE_16C5X,   PIC12BIT },
  43. { "16C56",     1024,   0x19,    0,     0x400,   0xfff,  FUSE_16C5X,   PIC12BIT },
  44. { "16C56A",    1024,   0x19,    0,     0x400,   0xfff,  FUSE_16C5X,   PIC12BIT },
  45. { "16CR56A",   1024,   0x19,    0,     0x400,   0xfff,  FUSE_16C5X,   PIC12BIT },
  46. { "16C57",     2048,   0x48,    0,     0x800,   0xfff,  FUSE_16C5X,   PIC12BIT },
  47. { "16CR57B",   2048,   0x48,    0,     0x800,   0xfff,  FUSE_16C5X,   PIC12BIT },
  48. { "16C57C",    2048,   0x48,    0,     0x800,   0xfff,  FUSE_16C5X,   PIC12BIT },
  49. { "16CR57C",   2048,   0x48,    0,     0x800,   0xfff,  FUSE_16C5X,   PIC12BIT },
  50. { "16C58A",    2048,   0x49,    0,     0x800,   0xfff,  FUSE_16C5X,   PIC12BIT },
  51. { "16CR58A",   2048,   0x49,    0,     0x800,   0xfff,  FUSE_16C5X,   PIC12BIT },
  52. { "16C58B",    2048,   0x49,    0,     0x800,   0xfff,  FUSE_16C5X,   PIC12BIT },
  53. { "16CR58B",   2048,   0x49,    0,     0x800,   0xfff,  FUSE_16C5X,   PIC12BIT },
  54. { "16C505",    1024,   0x48,    0,     0x400,   0xfff,  FUSE_16C5X,   PIC12BIT },
  55. { "16HV540",    512,   0x19,    0,     0x200,   0xfff,  FUSE_16C5X,   PIC12BIT },
  56.  
  57. /* 14-bit PICs */
  58. { "14C000",    4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_14000,   PIC14BIT },
  59. { "16C554",     512,   0x50,    0,    0x2000,  0x2007,  FUSE_16C55X,  PIC14BIT },
  60. { "16C558",    2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16C55X,  PIC14BIT },
  61. { "16C62A",    2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  62. { "16CR62",    2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  63. { "16C62B",    2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  64. { "16C63",     4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },    
  65. { "16C63A",    4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },    
  66. { "16CR63",    4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },    
  67. { "16C64A",    2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  68. { "16CR64",    2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  69. { "16C65A",    4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  70. { "16C65B",    4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  71. { "16CR65",    4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  72. { "16C66",     8192,  0x170,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },
  73. { "16C67",     8192,  0x170,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },
  74. { "16C620",     512,   0x60,    0,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  75. { "16C620A",    512,   0x60,    0,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  76. { "16CR620A",   512,   0x60,    0,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  77. { "16C621",    1024,   0x50,    0,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  78. { "16C621A",   1024,   0x60,    0,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  79. { "16C622",    2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  80. { "16C622A",   2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  81. { "16CE623",    512,   0x80,  128,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  82. { "16CE624",   1024,   0x80,  128,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  83. { "16CE625",   2048,   0x80,  128,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  84. { "16F627",    1024,   0x80,  128,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  85. { "16F628",    2048,   0x80,  128,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  86. { "16C642",    4096,   0xB0,    0,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  87. { "16C662",    4096,   0xB0,    0,    0x2000,  0x2007,  FUSE_16C62X,  PIC14BIT },
  88. { "16C710",     512,   0x24,    0,    0x2000,  0x2007,  FUSE_16C71X,  PIC14BIT },
  89. { "16C71",     1024,   0x24,    0,    0x2000,  0x2007,  FUSE_16CXX1,  PIC14BIT },
  90. { "16C711",    1024,   0x44,    0,    0x2000,  0x2007,  FUSE_16C71X,  PIC14BIT },
  91. { "16C712",    1024,   0x80,    0,    0x2000,  0x2007,  FUSE_16C71X,  PIC14BIT },
  92. { "16C715",    2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16C71X,  PIC14BIT },
  93. { "16C716",    2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16C715,  PIC14BIT },
  94. { "16C72",     2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },    
  95. { "16C72A",    2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },    
  96. { "16CR72",    2048,   0x80,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },    
  97. { "16C73A",    4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  98. { "16C73B",    4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  99. { "16C73C",    4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  100. { "16CR73C",   4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  101. { "16C74A",    4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  102. { "16C74B",    4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  103. { "16C74C",    4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  104. { "16CR74C",   4096,   0xC0,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  105. { "16C76",     8192,  0x170,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },
  106. { "16C76A",    8192,  0x170,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },
  107. { "16CR76A",   8192,  0x170,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },
  108. { "16C77",     8192,  0x170,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },
  109. { "16C77A",    8192,  0x170,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },
  110. { "16CR77A",   8192,  0x170,    0,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },
  111. { "16C773",    4096,  0x100,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  112. { "16C774",    4096,  0x100,    0,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  113. { "16F83",      512,   0x24,   64,    0x2000,  0x2007,  FUSE_16F8X,   PIC14BIT },    
  114. { "16CR83",     512,   0x24,   64,    0x2000,  0x2007,  FUSE_16F8X,   PIC14BIT },    
  115. { "16F84",     1024,   0x44,   64,    0x2000,  0x2007,  FUSE_16F8X,   PIC14BIT },
  116. { "16CR84",    1024,   0x44,   64,    0x2000,  0x2007,  FUSE_16F8X,   PIC14BIT },
  117. { "16F84A",    1024,   0x44,   64,    0x2000,  0x2007,  FUSE_16F8X,   PIC14BIT },
  118. { "16F873",    4096,   0xC0,  128,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  119. { "16F874",    4096,   0xC0,  128,    0x2000,  0x2007,  FUSE_16CXX2,  PIC14BIT },    
  120. { "16F876",    8192,  0x170,  256,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },
  121. { "16F877",    8192,  0x170,  256,    0x2000,  0x2007,  FUSE_16C6XA,  PIC14BIT },
  122. { "16C923",    4096,   0xB0,    0,    0x2000,  0x2007,  FUSE_16C55X,  PIC14BIT },
  123. { "16C924",    4096,   0xB0,    0,    0x2000,  0x2007,  FUSE_16C55X,  PIC14BIT },
  124.  
  125. {  NULL,          0,      0,    0,         0,       0,  0,            0 }
  126. };
  127.